An ever-increasing number of e-commerce providers or e-businesses rely on application server technology as the lifeblood of their business. Application servers form a proven foundation for supporting e-commerce applications, providing the presentation, business and information-access logic, security and management services, and underlying infrastructure required for highly scalable and mission-critical software applications. Increasingly, the demands of today's modern businesses require support for a new breed of Web and wireless applications, helping to meet the needs of increasingly sophisticated customers.
One such application server, WebLogic Server, from BEA Systems, Inc. San Jose, Calif., is based on an implementation of the Java 2 Enterprise Edition (J2EE) specification. WebLogic Server is used as the backbone for many of today's most sophisticated e-business applications, playing an integral role in a tightly integrated, comprehensive infrastructure that delivers commerce, personalization, campaign management, enterprise integration, workflow management, and business-to-business collaboration. From Web and wireless clients to Windows, Unix, and mainframe servers, WebLogic Server manages all of the underlying complexities of a business' e-commerce applications, allowing the organization to focus instead on delivering new and innovative products and services.
A typical application server, including WebLogic Server, supports a variety of clients, including Web browsers, and wireless devices. On the server side, WebLogic Server supports leading Unix, Linux, Windows, and mainframe operating systems. On the back-end, WebLogic Server integrates with relational databases, messages queues, and legacy systems. WebLogic Server provides support for features such as Servlets, Java Server Pages (JSPs), Enterprise JavaBeans (EJBs), Java Messaging Service (JMS), to provide access to standard network protocols, database, and messaging systems. When developing applications, developers can create, assemble, and deploy components that use these services.
In a typical deployment, WebLogic Server also includes a Web server for hosting static content and dynamic J2EE Web applications. J2EE Web applications typically include a collection of HTML/XML pages, Java Server Pages, Servlets, Java classes, applets, images, multimedia files, and other file types. WebLogic Server may also be integrated with other Web servers such as Apache, Microsoft IIS, or Netscape Web servers. Web components usually provide the presentation logic for browser-based or wireless applications, while EJB components encapsulate business objects and processes.
One of the problems with current Web server and application server offerings is that many hundreds, and sometimes thousands, of users may need access to the same resource at the same moment in time, using different web applications. This resource may be a servlet page, JSP, static content html page, or associated images etc. A typical production system may involve multiple web-applications (webapps). In these instances, the J2EE specification doesn't allow sharing of common resources, for example pages, images and other files. As a result the customers (in this context the software developers) end up copying the shared resources multiple times for each webapp. This places great strain on the resources of the application server or Web server, particularly in terms of memory usage.
Another problem with traditional Web and application server offerings are that files such as images, which may be common to many Web applications, usually need to be copied to the resource space or folder for each application. Web applications typically lack a mechanism by which they can share a single copy of a resource. While centralizing common resource files for all applications is extremely important for Web sites to assist in the setup and maintenance of that Web site, it is an administrative burden to copy the resources for all web applications separately.
E-commerce providers (developers) would benefit greatly from a convenient mechanism that allows for centralized control of common resources and files, and that reduces the burden on the server of responding to many common http requests.